String-based search engines allow a user to find a particular business within a defined area. For example, if a user wants to find the Hilton Hotel in Waltham, Mass., a string-based engine can be deployed to search the following in a database: “Hilton” AND “hotel” AND “Waltham” in order to find a listing having the attributes of Hilton, hotel, and Waltham. A “listing” refers to one item or one record of data in the database. In at least some string-based search systems, the listing type (e.g., hotel), the listing name (e.g., Hilton), and the listing location (e.g., Waltham) may be stored into three database tables or data files, and the listing type, name, and location may be indexed, i.e., sorted and stored, so that the listing can be retrieved using a method such as a binary search.
However, challenges may arise for a search that does not include only a string of attributes but rather also includes searching for particular listings based on the listings proximity to a point of reference, referred to as a location based search. An example of a location based search may be “Hilton Hotels within 10 miles of the location: 100 Main Street, Waltham, Mass.”
According to one known method, a location based search may include assigning geographical or quad codes to each listing of a database according to the location of the listing within a sub-region of an entire searchable region. Each listing within a particular sub-region has a quad code. In the example presented above, the method may include determining each sub-region that has at least a portion that is within 10 miles of 100 Main Street, Waltham, Mass. and then searching only those listings that are within one of the sub-regions having any portion within 10 miles of 100 Main Street, Waltham, Mass. Determining the sub-regions that have at least a portion that overlaps a search area or area of interest, allows for the filtering out of all of the listings in sub-regions that do not have any overlap and thus may help decrease the time to conduct the search.
In this known method, the size of the individual sub-regions presents a trade-off. Relatively large sub-regions (in terms of geographical size per sub-region) decrease the number of sub-regions that are likely to have a portion within the area of interest and thus decrease the number of sub-regions that need to be searched. However, large sub-regions are more likely to have a larger number of listings per sub-region and thus the more listings per sub-region that have to be searched. In contrast, relatively small sub-regions (in terms of geographical size per sub-region) increase the number of sub-regions that are likely to have a portion within the area of interest and thus increase the number of sub-regions that need to be searched. But small sub-regions are more likely to have a fewer number of listings per sub-region and thus the less listings per sub-region that have to be searched.
The size of the individual sub-regions is relative to the area of interest. According to the known method for location based searching, the total number and individual sizes of sub-regions are adjusted to correspond to the size of the area of interest. Specifically, for relatively large searches (i.e., for relatively large areas of interest), the size of the individual sub-regions is the largest and the number of the sub-regions is the fewest. For relatively small searches (i.e. for relatively small areas of interest) the size of the individual sub-regions is the smallest and the number of the sub-regions is the greatest. And for relatively intermediate searches (i.e., for relatively intermediate areas of interest) the size of the individual sub-regions is between the largest and smallest sizes of the other size searches and the number of sub-regions is between the greatest and fewest numbers of the other size searches.
According to the known method, the quad codes for each listing is dependent on the sub-region in which the listing is located. Therefore, each time the size and number of sub-regions is adjusted, the quad codes for the listings change. Specifically, each listing has a different quad code, one for relatively large searches, one for relatively intermediate searches, and one for relatively small searches. Assigning multiple quad codes to one listing adds complexity to the method.